package org.mygui;

import javax.swing.*;

import org.mygui.bean.DBInfo;
import org.mygui.file.FileUtils;
import org.mygui.mongo.MyMongoDBClient;

import java.awt.*;  
import java.awt.event.ActionEvent;  
import java.awt.event.ActionListener;
import java.sql.*; 

public class Login extends JFrame implements ActionListener{
	 //定义登录界面的组件  
    JButton jb1,jb3=null;
    JRadioButton jrb1,jrb2=null;
    JPanel jp1,jp2,jp3,jp4,jp5=null;
    JTextField jtf1,jtf2,jtf3=null;
    JLabel jlb1,jlb2,jlb3,jlb4=null;
    ButtonGroup bg=null;
    JComboBox jcb = null;

    //菜单项  
    JMenuBar jmb=null;    
    JMenu jm=null;  
    JMenuItem jmi1,jmi2=null;  
      
      
    public static void main(String[] args) {  
        Login ms = new Login();  
                          
    }  
    //构造函数  
    public Login()  {
         //创建组件  
        jb1=new JButton("连接");  
//        jb2=new JButton("重置");  
        jb3=new JButton("退出");  
        //设置监听  
        jb1.addActionListener(this);  
//        jb2.addActionListener(this);  
        jb3.addActionListener(this);  
          
        jmb=new JMenuBar(); //JMenuBar指菜单栏  
        jm=new JMenu("选项"); //JMenu是菜单栏中的选项栏  
        jmi1=new JMenuItem("开始"); //JMenuItem指选项栏中的选项  
        jmi2=new JMenuItem("退出系统");  
        jm.add(jmi1);  
        jm.add(jmi2);  
        jmb.add(jm);  
          
        jp1=new JPanel();
        jp2=new JPanel();
        jp3=new JPanel();
        jp5=new JPanel();
        jp4=new JPanel();
        jlb1=new JLabel("ip：");
        jlb2=new JLabel("端口：");
        jlb3=new JLabel("数据库：");
          
        jtf1=new JTextField(10);
        jtf2=new JTextField(10);
        jtf3=new JTextField(10);
        //加入到JPanel中  
        jp1.add(jlb1);
        jp1.add(jtf1);
        jp2.add(jlb2);
        jp2.add(jtf2);
        jp3.add(jlb3);
        jp3.add(jtf3);
        
        
        jlb4 = new JLabel("选择：");  
        String[] jg = {"北京北京北京北京", "上海北京北京北京", "天津北京北京", "火星北京北京"};  
        jcb = new JComboBox(jg);
        jp5.add(jlb4);
        jp5.add(jcb);
        
        jp4.add(jb1);  
//        jp4.add(jb2);  
        jp4.add(jb3);  
          
        //加入JFrame中  
        this.setJMenuBar(jmb);
        this.add(jp1);  
        this.add(jp2);  
        this.add(jp3);
        this.add(jp5);
        this.add(jp4);  
        //设置布局管理器  
        this.setLayout(new GridLayout(5,1));  
        //给窗口设置标题  
        this.setTitle("mongoDB管理系统");  
        //设置窗体大小  
        this.setSize(250,400);  
        //设置窗体初始位置  
        this.setLocation(200, 150);  
        //设置当关闭窗口时，保证JVM也退出  
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        //显示窗体  
        this.setVisible(true);  
        this.setResizable(true);  
          
    }  
    @Override  
    public void actionPerformed(ActionEvent e) {
        if(e.getActionCommand()=="退出"){
            System.exit(0);  
        }else if(e.getActionCommand()=="连接"){
        	this.login();  
        }            
    }  
    //清空文本框和密码框  
    public  void clear()  {  
        jtf1.setText("");
        jtf2.setText("");
        jtf3.setText("");
    }  
    public void login(){
    	String ip = jtf1.getText();
    	String port = jtf2.getText();
    	String dbName = jtf3.getText();
    	
    	if(null==ip||"".equals(ip)
    			||null==port||"".equals(port)
    			||null==dbName||"".equals(dbName))
    	{
    		JOptionPane.showMessageDialog(null,"请补全信息!","登录失败",JOptionPane.WARNING_MESSAGE);
    	}else{
    		if(null!=MyMongoDBClient.getDataBase(ip,Integer.parseInt(port),dbName)){
        		MyMongoDBClient.setDBInfo(new DBInfo(ip,Integer.parseInt(port),dbName));
        		FileUtils.writeFile(ip,Integer.parseInt(port),dbName);
                JOptionPane.showMessageDialog(null,"登录成功！","提示消息",JOptionPane.WARNING_MESSAGE);
                this.clear();
                //关闭当前界面  
                 dispose();
                 //创建一个新界面
                 new Query();
            }else{  
                JOptionPane.showMessageDialog(null,"用户名或者密码错误！\n请重新输入","提示消息",JOptionPane.ERROR_MESSAGE);  
                //清空输入框  
                this.clear();  
            }
    	}
    } 
}
